package mt;

import java.util.*;

/**
 * @author zhangmin
 * @create 2022-03-12 16:30
 */
public class meituan_0312 {
    /*
    * 1、判断数字是否满足下列条件
    * 数字是11的整数倍
    * 数字中至少包含两个1
    * */
/*    public void test1(int n,int[] nums){
        for(int i=0;i<n;i++){
            int cur=nums[i];
            if(cur%11!=0) System.out.println("No");
            while (cur!=0){
                int c=cur%10;
                if(c)
            }
        }
    }*/

    /*
    * 2、有一个只包含1和-1两种数字的序列
    * 求有多少连续的子序列，序列中的数字乘积为正
    * */
    public int test2(int[] nums){
        int n=nums.length;
        int[][] dp=new int[n][2];
        dp[0][0]=nums[0]==-1?1:0;
        dp[0][1]=nums[0]==1?1:0;
        int res=dp[0][1];
        for(int i=1;i<n;i++){
            if(nums[i]==1){
                dp[i][0]=dp[i-1][0]+1;
                dp[i][1]=dp[i-1][1]+1;
            }else {
                dp[i][0]=dp[i-1][1]+1;
                dp[i][1]=dp[i-1][0]+1;
            }
            res=Math.max(res,dp[i][1]);
        }
        return  res;
    }

    /*
    * 3、每种菜只够做一份，
    * */

    public  int test4(int n,int m,int[] nums){
        int res=0;
        //记录当前在哪个房间
        int curindex=1;
        for(int i=1;i<m;i++){
            int curb=nums[i];
            if(curb==curindex){
                res++;
                if(i==m-1) return res;
                //找到下一个跳到的位置，在当前时间向后找到最晚会炸的房间或永远不会炸的房间
                Queue<Integer> queue=new LinkedList<>();
                Set<Integer> set=new HashSet<>();
                int k=i+1;
                while (k<m&&set.add(nums[k])&&nums[k]!=curindex){
                    queue.offer(nums[k]);
                    k++;
                    if(set.size()==n){
                        break;
                    }
                }
                if(set.size()<n-1){
                    //说明有房间之后都不会炸，直接返回当前的能量即可
                    return res;
                }else {
                    //跳到队列最后的元素的位置
                    curindex=queue.peek();
                }
            }
        }
        return  res;
    }
/*    public int test3(int[][] c,int n){

    }*/
    public static void main(String[] args) {

    }
}
